var name = "windowsName";

var a = {
    name : "Cherry",

    func1: function () {
        console.log(this.name)     
    },

    func2: function () {
        console.log(this)
        function s() {
            // this.func1()
            console.log(this)
        }
        s()
    }

};
a.func2()     // this.func1 is not a function

// var a ={
//     name : "Cherry",
//     fn : function (a,b) {
//         console.log( a + b, this.name)
//     }
// }

// var b = a.fn;
// console.log( b.apply(a, [1, 2]) == a.fn(1, 2) )    // true
// console.log(b)

// var name = "windowsName";

// function fn() {
//     var name = 'Cherry';
//     innerFunction();
//     function innerFunction() {
//         console.log(this.name);      // windowsName
//     }
// }

// fn()